package com.qr.tools;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.qr.domain.DemoData;
import org.junit.Test;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * 官方文档
 *      https://www.yuque.com/easyexcel/doc
 */

public class EasyExcelTool {

    /**
     * 加载我们写的实体类
     * @return
     */
    private List<DemoData> data() {
        List<DemoData> list = new ArrayList<DemoData>();
        for (int i = 0; i < 10; i++) {
            //创建对象放入到list集合当中
            DemoData data = new DemoData();
            data.setString("字符串" + i);
            data.setDate(new Date());
            data.setDoubleData(0.56);
            list.add(data);
        }
        return list;
    }

    /**
     * 根据list进行写入
     */
    @Test
    public void simpleWrite() {

        String path = "E:\\workspace\\GitRepository\\java-framework\\poi\\poi-use\\src\\main\\resources\\";

        // 写法1
        String fileName = path+"easy.xlsx";
        // 这里 需要指定写用哪个class去写，然后写到第一个sheet，名字为模板 然后文件流会自动关闭
        EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());

    }

    /**
     * 最简单的读
     */
    @Test
    public void simpleRead() {
        String path = "E:\\workspace\\GitRepository\\java-framework\\poi\\poi-use\\src\\main\\resources\\";
        // 有个很重要的点 DemoDataListener 不能被spring管理，要每次读取excel都要new,然后里面用到spring可以构造方法传进去
        // 写法1：
        String fileName = path+"easy.xlsx";
        // 这里 需要指定读用哪个class去读，然后读取第一个sheet 文件流会自动关闭
        EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
    }



}
